home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS078A.dsk / ARTILLERY.bas < prev    next >
BASIC Source File  |  2012-02-16  |  6KB  |  73 lines

  1. 1  REM *************************
  2. 2  REM       ARTILLERY
  3. 3  REM       M.WIDMANN
  4. 4  REM *************************
  5. 5  REM 
  6. 40  GOSUB 50000
  7. 45  ONERR  GOTO 1000
  8. 50  TEXT : CLEAR : HOME :XO = 0:XN = 0:YO = 0:YN = 0:VX = 0:VN = 0:TA = 0:TB = 0:TC = 0:TD = 0:G = .1:M = 30 +90 * RND(1):W = (.5 - RND(1))/5
  9. 51 A = 60 +90 * RND( RND(1)):B = 60 +90 * RND(1):FI = 0:F3 = 0:F2 = 0:S =  -16336: IF A <120  AND  ABS(A -B) <45  THEN  GOTO 51
  10. 52  GOSUB 2000: GOSUB 395: GOTO 530
  11. 65  REM CALCULATION STARTS
  12. 80  IF FI = 1  THEN VX = VX -W:VY = VY -G:XN = XO +VX -W/2:YN = YO -VY +G/2: GOTO 105
  13. 95 VX = VX +W:VY = VY -G:XN = XO -VX +W/2:YN = YO -VY +G/2
  14. 105  IF XN <1  OR XN >278  OR YN <1  THEN  GOTO 1000
  15. 110  IF YN > = A  AND XN <80  THEN  GOTO 215
  16. 125  IF XN >199  AND YN > = B  THEN  GOTO 245
  17. 155  IF YN > = TA -TB *XN  AND XN >80  AND XN <140  THEN  GOTO 260
  18. 170  IF YN > = TC +TD *XN  AND XN >140  AND XN <199  THEN  GOTO 260
  19. 184  IF F4 = 1  THEN  HCOLOR= 3: HPLOT XO,YO TO XN,YN: GOTO 200
  20. 185  HCOLOR= 3: HPLOT XN,YN:F3 = 0: HCOLOR= 0: HPLOT XO,YO
  21. 200 XO = XN:YO = YN: GOTO 80
  22. 215  IF XN >35  AND XN <45  THEN F2 = 1: GOTO 305
  23. 230  GOTO 260
  24. 245  IF XN >234  AND XN <244  THEN A = B: GOTO 305
  25. 260  HCOLOR= 3: HPLOT XO,YO TO XO +4,YO -8 TO XO,YO -1 TO XO,YO -12 TO XO,YO -1 TO XO -4,YO -8: HCOLOR= 0: HPLOT XO,YO TO XO +4,YO -8 TO XO,YO -1 TO XO,YO -12 TO XO,YO -1 TO XO -4,YO -8
  26. 261  FOR N = 1 TO 7:L =  PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOTO 530
  27. 275  GOTO 305
  28. 290 A = B
  29. 305  HCOLOR= 3: HPLOT XO -1,A TO XO -5,A -6 TO XO -1,A -1 TO XO,A -10 TO XO +1,A -1 TO XO +6,A -6: HCOLOR= 0: HPLOT XO -1,A TO XO -5,A -6 TO XO -1,A -1 TO XO,A -10 TO XO +1,A -1 TO XO +6,A -6
  30. 306  FOR N = 1 TO 5:L =  PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : IF RE = 0  THEN RE = 1: GOTO 305
  31. 307  FOR N = 5 TO 200  STEP 20: POKE 768,N: POKE 769,3: CALL 770: NEXT : FOR N = 1 TO 25:L =  PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT 
  32. 320  HCOLOR= 3: READ PA: READ PB: FOR N = 1 TO 47: READ PC: READ PD: HPLOT XO -10 +PA,A -PB TO XO -10 +PC,A -PD:PA = PC:PB = PD:L =  PEEK(S): NEXT 
  33. 322  FOR N = 1 TO 3: FOR M = 3 TO 12: HCOLOR= 0: HPLOT XO -1,A -M TO XO,A -M -2:L =  PEEK(S) - PEEK(S) + PEEK(S)
  34. 335  HCOLOR= 3: HPLOT XO -1,A -M TO XO,A -M -2: NEXT : FOR M = 3 TO 12: HCOLOR= 0: HPLOT XO +2,A -M TO XO,A -M -2:L =  PEEK(S) - PEEK(S) + PEEK(S): HCOLOR= 3: HPLOT XO +2,A -M TO XO,A -M -2: NEXT : NEXT 
  35. 337  IF FI = 1  AND F2 = 1  OR FI = 0  AND F2 = 0  THEN  VTAB 23: HTAB 13: INVERSE : FLASH : PRINT "**** DUMMY! ****";: NORMAL : GOTO 339
  36. 338  VTAB 23: HTAB 13: INVERSE : FLASH : PRINT "** GOOD SHOT! **";: NORMAL 
  37. 339  HCOLOR= 0: FOR N = 1 TO 27: HPLOT XO -11,A +4 -N TO XO +11,A +4 -N: NEXT 
  38. 340  VTAB 24: HTAB 13: INPUT "PLAY AGAIN....?";A$: IF A$ = "Y"  THEN  GOTO 50
  39. 341  TEXT : HOME : END 
  40. 350  DATA 0,0,20,0,1,1,19,1,2,2,17,2,7,3,13,3,8,4,12,4,8,5,12,5,9,6,12,6,9,7,13,7,9,8,13,8,9,9,13,9,9,10,13,10,9,11,13,11,8,12,12,12,8,13
  41. 365  DATA 12,13,8,14,12,14,8,15,8,16,17,16,3,16,18,17,2,17,20,18,1,18,21,19,0,19,20,20,0,20,19,21,1,21,18,22,3,22,16,23,6,23
  42. 395  REM *SCENE DRAW
  43. 425 TA = A +80 *(A -M)/60:TB = (A -M)/60:TC = M -140 *(B -M)/60:TD = (B -M)/60:TX = B -80 *(B -M)/60:TZ = (B -M)/60
  44. 440  HGR 
  45. 455  HCOLOR= 1: FOR N = 1 TO 80: HPLOT N,A TO N,159: NEXT : FOR N = 80 TO 140:Y = TA -TB *N: HPLOT N,Y TO N,159: NEXT : FOR N = 140 TO 199:Y = TC +TD *N: HPLOT N,Y TO N,159: NEXT : FOR N = 199 TO 279: HPLOT N,B TO N,159: NEXT 
  46. 470  HCOLOR= 3: HPLOT 234,B TO 239,B -3 TO 244,B TO 234,B: HCOLOR= 3: HPLOT 35,A TO 40,A -3 TO 45,A TO 35,A: VTAB 21: PRINT "ANGLE/FORCE";: INVERSE : HTAB 13: PRINT "      WIND      ";: NORMAL : PRINT " ANGLE/FORCE";
  47. 485  POKE 34,21: IF W <0  THEN  HTAB 14: VTAB 21: INVERSE : PRINT "W-"; INT(100 * ABS(W));: HTAB 24: PRINT ">>>";: NORMAL : CALL  -936: GOTO 505
  48. 500  VTAB 21: HTAB 14: INVERSE : PRINT "<<<";: HTAB 24: PRINT "E-"; INT(100 *W);: CALL  -936: NORMAL 
  49. 505  VTAB 23: HTAB 13: PRINT "MAX.WIND......10";: VTAB 24: HTAB 13: PRINT "MAX.FORCE.....10";: RETURN 
  50. 515  REM PLAYER SELECT&INPUT STARTS
  51. 530  IF FI = 0  THEN FI = 1: GOTO 560
  52. 545  IF FI = 1  THEN FI = 0: GOTO 635
  53. 560  VTAB 23: HTAB 1: POKE 33,6: INPUT AL: IF AL >170  OR AL <1  THEN  PRINT "<CTRL-G><CTRL-G><CTRL-G>";: GOTO 560
  54. 575  HCOLOR= 0: FOR N = A -9 TO A: HPLOT 32,N TO 48,N: NEXT : HCOLOR= 3: HPLOT 35,A TO 40,A -3 TO 45,A TO 35,A
  55. 590 XO = 40 +8 * COS(AL/57.3):YO = A -8 * SIN(AL/57.3): HPLOT 40,A TO XO,YO
  56. 605  POKE 33,12: VTAB 23: HTAB 7: INPUT FO: IF FO <1  OR FO >10  THEN  PRINT "<CTRL-G><CTRL-G><CTRL-G>";: GOTO 605
  57. 620  PRINT : POKE 33,40: GOTO 695
  58. 635  POKE 33,6: POKE 32,29: VTAB 23: INPUT AL: IF AL >179  OR AL <1  THEN  PRINT "<CTRL-G><CTRL-G><CTRL-G>";: GOTO 635
  59. 650  HCOLOR= 0: FOR N = B -9 TO B: HPLOT 231,N TO 246,N: NEXT : HCOLOR= 3: HPLOT 234,B TO 239,B -3 TO 244,B TO 234,B:XO = 239 -8 * COS(AL/57.3):YO = B -8 * SIN(AL/57.3): HPLOT 239,B TO XO,YO
  60. 665  POKE 33,10: VTAB 23: HTAB 6: INPUT FO: IF FO <1  OR FO >10  THEN  PRINT "<CTRL-G><CTRL-G><CTRL-G>";: GOTO 665
  61. 680  PRINT : POKE 32,0: POKE 33,40
  62. 695 VY =  SIN(AL/57.3) *FO *1.2:VX =  COS(AL/57.3) *FO *1.2: POKE 768,100: POKE 769,3: CALL 770: GOTO 80
  63. 1000  IF F3 = 0  THEN F3 = 1: HCOLOR= 0: HPLOT XO,YO
  64. 1005  IF YN >A  AND XN <1  THEN  GOTO 515
  65. 1010  IF XN >278  AND YN >B  THEN  GOTO 515
  66. 1015  GOTO 200
  67. 2000  VTAB 5: PRINT "****************************************": PRINT : HTAB 15: INVERSE : PRINT "ARTILLERY": NORMAL : PRINT : PRINT "****************************************"
  68. 2010  VTAB 16: HTAB 9: PRINT "WOULD YOU LIKE A": HTAB 9: INPUT "TRAJECTORY TRACE?";A$:F4 = 0: IF A$ = "Y"  THEN F4 = 1
  69. 2020  RETURN 
  70. 50000  POKE 770,173: POKE 771,48: POKE 772,192: POKE 773,136: POKE 774,208: POKE 775,5: POKE 776,206: POKE 777,1: POKE 778,3:
  71. 50001  POKE 779,240: POKE 780,9: POKE 781,202: POKE 782,208: POKE 783,245: POKE 784,174: POKE 785,0: POKE 786,3: POKE 787,76:
  72. 50002  POKE 788,2: POKE 789,3: POKE 790,96: POKE 791,0: POKE 792,0:
  73. 50003  RETURN